#include "aspect.h"
#include <string>
#include <stdio.h>
class ITest {
public:	

};
class AspectTest : public ITest{
public:
	void Entry(aspect::Aspect &aspect)
	{
		// 每次ASSERT 之前都会调用到这里
		// 得到上次的执行结果
		// 如果失败 则 替换执行参数
		// 如果成功 则 保存当次执行参数
	}	
	
	void Assert_BOOL(aspect::Aspect &aspect,bool &result)
	{
		// 如果参数不一致,则设置 root 的验证 结果不对，并保留其环境
		
	}
	
	void Assert_EQ(aspect::Aspect &aspect)
	{
		// 如果参数不一致,则设置 root 的验证 结果不对，并保留其环境
		
	}
	
	void FileMatch(aspect::Aspect &aspect)
	{
		// 每次ASSERT 之前都会调用到这里
		// 得到上次的执行结果
		// 如果失败 则 替换执行参数
		// 如果成功 则 保存当次执行参数
	}	
	DEC_ASPECT_LOGIC;
};

void AspectTest::Entry(aspect::Aspect &aspect)
{	 
	
}

void AspectTest::Assert_BOOL(aspect::Aspect &aspect)
{	 
	
}
 

ASPECT_LOGIC(AspectTest)	
{
	BIND_ASPECT("*:ENTRY*",&AspectTest::Entry,ARG()); 
	BIND_ASPECT("*:ASSERT_BOOL",&AspectTest::Assert_BOOL,ARG1(bool));
	BIND_ASPECT("ATest.cpp:*",&AspectTest::FileMatch,ARG());  
	BIND_ASPECT("*:ASSERT_EQ*",&AspectTest::Assert_EQ,ARG());
}



